package com.sz.common.pay.pingan.entity.rechargewithdrawal;

import lombok.Data;

/**
 * Function: 会员提现【6005】 （验证）<br>
 * Author: siqishangshu <br>
 * Date: 2017-10-30 10:31:00
 * 会员提现【6005】（验密）
 功能描述：
    将资金从会员子账户提现到会员绑定的提现账户，需使用支付密码。提现是异步处理， 该接口返回成功只表示受理成功，
 实际是否成功需要使用6094查询。
 相关说明：
 接口字段：
    请求包：交易网－> 监管系统
 输入项名称	    英文名	    最大长度	输入属性	注释
 交易网名称	    TranWebName	C(120)	必输
 子账户账号	    CustAcctId	C(32)	必输
 会员证件类型	    IdType	    C(2)	必输
 会员证件号码	    IdCode	    C(20)	必输
 交易网会员代码	ThirdCustId	C(32)	必输
 子账户名称	    CustName	C(120)	必输
 资金汇总账号	    SupAcctId	C(32)	必输
 提现账号	        OutAcctId	C(32)	必输	    即收款账户，必须是在系统中维护的提现账号
 提现账户名称	    OutAcctIdName C(120) 必输	银行卡户名，必须与子账户名称一致
 币种	        CcyCode	    C(3)	必输	    默认为RMB
 申请提现金额	    TranAmount	9(15)	必输
 备注	        Note	    C(120）	可选
 保留域	        Reserve	    C(120)	必输	    与ThirdLogNo内容一致
 网银签名       	WebSign	    C(256)	必输
 支付密码使用说明
 使用说明
 只有使用前面的【6006】和【6005】接口才需要看这一章。否则跳过。
 1、为了增加客户对第三方交易安全的信赖，第三方可借助平安银行网上交易密码验证，平安银行网上交易密码验证支持客户支付密码设置，支付密码修改，支付密码重置和支付密码验证。
 3、会员绑定充值/提现账号验证通过后才能设置支付密码。
 4、支付密码的使用过程，例如场景是我要提现，首先跳转银行页面验证支付密码，验证成功后，银行跳转回平台的页面，给平台提供网银签名，这时平台将网银签名拼在业务报文体的最后，加上分隔符结束，发给银行联机交易即可。
 （平台页面点击按钮→平台使用form表单将数据发送至银行地址→银行展示页面让客户输入支付密码→验证成功通知平台返回相关参数，并跳转回平台页面）
 5、获取交易结果，银行提供前端通知和后端通知，前端通知即跳回平台页面，同时返回相关结果，但若客户将窗口关掉则无法跳回平台，因此后端通知则是在客户完成交易后马上主动通知平台，防止客户关闭窗口而导致平台无法获取结果。
 6、会员手机号修改，专指验密过程中收取银行动态验证码的手机，因验证支付密码页面，还需要客户填入手机动态验证码，故若号码变更了，则需调用该功能进行修改。

 若需要在手机端验证支付密码，则前往下面地址下载相应程序。
 http://pan.baidu.com/s/1dDz4EQ1

 调用步骤说明
 从第三方转向到平安银行的时候，采用https通讯协议，发给银行指定的url，采用form表单以post方式提交数据，
 例如：
 <form NAME= "PayForm" ACTION="https://testebank.sdb.com.cn/corporbank/nonpartyVerify.do"  METHOD="POST">（生产系统使用ebank.sdb.com.cn替换testebank.sdb.com.cn）
 <input type="hidden" id="type" name="type" value="S" > <!-- S为设置支付密码，C为修改支付密码，R为重置支付密码，V为验证支付密码 M为修改手机号码-->
 <input type="hidden" id="P2PCode" name="P2PCode" value="" >  <!—平台代码 -->
 <input type="hidden" id=" thirdCustId " name="thirdCustId" value="" > <!—会员代码 -->
 <input type="hidden" id="custAccId " name="custAccId" value="" > <!—会员子账号 -->
 <input type="hidden" id="mobile" name="mobile" value="" >   <!—会员手机号 -->
 <input type="hidden" id="orig" name="orig" value="" >   <!—签名原数据串 -->
 <input type="hidden" id="returnurl" name="returnurl " value="" >   <!—回调第三方URL -->
 <input type="hidden" id="notifyUrl" name="notifyUrl" value="" >   <!—回调第三方URL -->
 <input type="hidden" id=" channelType" name=" channelType" value="" >   <!—渠道类型 -->

 </form>
 form组成规则：
 表单域名	            描述	                    备注
 orderid	        本次交易流水号 	        必输，平台需保证至少当日不能重复
 type	            交易类型	                "S：设置支付密码 C：修改支付密码 R：重置支付密码 V：验证支付密码 M：会员手机号修改 必输 会员绑定充值/提现账号验证通过后才能设置支付密码"
 P2PCode	        第三方平台ID	            必输（四位企业代码，即QYDM字段）
 P2PType	        第三方平台类型	        "2：非代扣 必输"
 thirdCustId	    会员代码	                必输
 custAccId	        会员子账号	            必输
 name	            会员名称	                必输
 idType	            会员证件类型	            必输
 idNo	            会员证件号码	            必输
 accNo	            充值提现账户账号/卡号	    可选
 accName	        充值提现账户名称	        可选
 mobile	            会员手机号	            "用于接收银行短信验证码 必输"
 orig	            签名源数据串	            type为V(验证支付密码)时必输，其他不用送值
 returnurl	        回调第三方url	            只有送值，才会跳回到平台页面。
 notifyUrl	        交易结果通知第三方url	    送值就通知否则不通知，若需要交易结果的就一定要送值。
 channelType	    交易渠道类型	            可选

 orig签名源数据串组成规则：使用API生成用于加签名的报文体接口获取，getSignMessage函数。

 returnurl回调地址说明：
 对于type为S(支付密码设置)，C(支付密码修改)，R(支付密码重置)的交易，交易完成直接转向银行的结果页面（失败转向失败页面，成功转向成功页面），因此这三种类型的交易第三方可以不送returnurl，不送的话交易完成不回调第三方。
 对于type为V(验证支付密码)的交易，银行验证支付密码和手机短信动态码，若验证失败，则直接在银行自己的失败结果页面提示客户，若验证通过，则回调第三方预留的returnurl，并将签名源数据串orig（同上送）和电子签名串sign以FORM表单post的方式返回returnurl，第三方returnurl页面一开始加载就用异步方式发银行交易接口，接口附带上orig和sign两个域，银行后台系统收到接口请求后会先进行电子签名验签，验签通过后才会进行交易处理，否则会直接返回验签失败。
 在返回的结果中，文件头包含<meta name=SDBPAYGATE content=SDBPAYGATE >。如果不包含，则说明不是支付网关正常的返回结果。
 form组成规则：
 表单域名       	描述	                备注
 orderid	第三方本次交易流水号 	同第三方上送流水号
 P2PCode	第三方平台ID	        必输
 flag	    交易结果	            "1：成功 2：失败 3：不明"
 orig	    签名源数据串	        仅用于验证支付密码交易
 sign	    电子签名串	        仅用于验证支付密码交易
 notifyUrl通知地址说明：
 若第三方需要知道交易结果进行后续业务逻辑处理，则需要上送notifyUrl，银行业务逻辑处理完成之后会采用后台通知的方式将结果通知到第三方，对于一笔业务可能会通知多次，第三方要能处理重复的通知请求，根据orderid进行判重处理。
 form组成规则：
 表单域名       	描述              	备注
 orderid	第三方本次交易流水号 	同第三方上送流水号
 P2PCode	第三方平台ID	        必输
 flag	    交易结果        	    "1：成功 2：失败 3：不明"
 orig	    签名源数据串	        仅用于验证支付密码交易
 sign	    电子签名串	        仅用于验证支付密码交易

 测试说明
 表单示例：https://testebank.sdb.com.cn/corporbank/sv_enterTestPage.do
 进行支付密码相关操作时，查询手机动态码：
 https://testmy.orangebank.com.cn/scfpwp-web/telNew.jsp
 */
@Data
@Deprecated
public class WithdrawalsPasswordRequest {
    private String TranFunc  = "6005";        //交易码
    private String TranWebName;
    private String CustAcctId;
    private String IdType;
    private String IdCode;
    private String ThirdCustId;
    private String CustName;
    private String SupAcctId;
    private String OutAcctId;
    private String OutAcctIdName;
    private String CcyCode;
    private String TranAmount;
    private String Note;
    private String Reserve;
    private String WebSign;
}
